package com.ljcalc.business.components;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;

import com.ljcalc.business.components.requests.HistoryResultRequest;

public abstract class AbstractHistoryResultAnalyzer {

	public abstract ConsecutiveSpacePattern getAdjacentStat(int consecutiveIndex,int space);
	
	public abstract HashMap<String, ConsecutiveSpacePattern> getHistoryResultsStat();
	
	public abstract List<NumberPercentage> getLottoStat();
	
	public abstract HistoryResultRequest getNextResultRequest(HistoryResultRequest r);
	
	public abstract List<Integer> getNumberTimeConsecutiveStat(int theindex);
	
	public abstract List<Combination> getResult();
	
	public abstract boolean hasSameCombInHistory(Combination comb);
	
	public abstract boolean initHistoryResults();
	
	public abstract boolean isConsecutiveAcceptableCombination(Combination comb);
	
	public abstract boolean isInTimeConsecutiveTolerance(Combination combToCompare);
	
	public abstract boolean isValidRequest(HistoryResultRequest lastResultRequest);
	
	public abstract LinkedHashMap<String, Combination> sortResultMap(HashMap map);
}
